import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

#箱线图
#1.准备数据
np.random.seed(42)
data=[
    np.random.normal(1,1,100),#
    np.random.normal(0,1.5,100),#
    np.random.normal(-1,2,100),# 负1的正态分布
]
labels=['A','B','C']
#2.创建画布
plt.figure(figsize=(10,6),dpi=100)
#3.绘制箱线图
box=plt.boxplot(
    data,
    labels=labels,
    # 显示异常值
    showfliers=True,
    #垂直显示
    vert=True,
    #箱体宽度
    widths=0.5,
    # 异常值样式
    flierprops=dict(marker='o',markerfacecolor='red',markersize=6,linestyle='none'),
    patch_artist=True,# 填充箱体颜色
    boxprops=dict(facecolor='lightblue',color='blue'),# 箱体颜色
    whiskerprops=dict(color='blue'),# 须线颜色
    capprops=dict(color='blue'),# 上限线颜色
    medianprops=dict(color='red'),# 中位数颜色
)
#4.设置属性
plt.title('箱线图',fontsize=16,fontweight='bold',pad=20)
plt.xlabel('类别',fontsize=12)
plt.ylabel('数值',fontsize=12)
plt.xticks(fontsize=12)
plt.yticks(fontsize=12)
plt.grid(True,alpha=0.3,linestyle='--')
#避免乱码
plt.rcParams['font.sans-serif']=['SimHei']
# 显示图表
plt.tight_layout
plt.show()
